#include "lista.h"

lista* inicializar_lista() {
	lista* l;
	l=(lista*)malloc(sizeof(lista));
	l->num_palabras=0;
	l->espacio=100;
	l->lista_palabras=(char**)malloc(sizeof(char*)*100);
	return l;
}

bool lista_agregar_palabra(char* palabra,lista* l) {
	char** lista;
	lista=l->lista_palabras;
	lista[l->num_palabras]=palabra;
	l->num_palabras++;
	if(l->num_palabras>=l->espacio){
		l->espacio=l->num_palabras+100;
		lista = (char**)realloc(lista, l->espacio*sizeof(char*));
		if(lista == NULL)
			return false;
		l->lista_palabras=lista;
	}
	return true;
}

char** obtener_lista(lista* l){
	return l->lista_palabras;
}

int obtener_num_elementos(lista* l){
	return l->num_palabras;
}

void imprimir_lista(lista* l){
	int i;
	for (i=0;i<l->num_palabras;i++)
		printf("%s\n",l->lista_palabras[i]);
}

void eliminar_lista(lista* l) {
	int i;
	for (i=0;i<l->num_palabras;i++)
		free(l->lista_palabras[i]);
	free(l->lista_palabras);
	free(l);
}

